import Vuex from 'vuex'
import Vue from 'vue'

Vue.use(Vuex)
// 定义vuex仓库
const store = new Vuex.Store({
  // 存储组件公共的状态
  state: {
    num: 10
  },
  mutations: {
    add_num (state, n) {
      /*
      两个参数
        参数1 就是 state
        参数2 提交mutation传递的参数
      */
      state.num += n
    },
    reduce_num (state, n) {
      state.num -= n
    }
  },
  actions: {
    add_num_async (context, n) {
      /*
        参数1  实例中 this.$store对象
      */
      setTimeout(() => {
        context.commit('add_num', n)
      }, 2000)
    }
  }
})

export default store
